package com.xuelang.pipeline.domain.resource.service;

import com.xuelang.pipeline.client.common.result.PageRecord;
import com.xuelang.pipeline.client.resource.dto.DictQuery;
import com.xuelang.pipeline.domain.resource.Dict;

import java.util.List;

/**
 * 字典领域服务类
 *
 * @author xiwen.zxg
 * @since 2024/5/15
 */
public interface DictDomainService {
    /**
     * 获取字典列表，有过滤条件
     *
     * @param currentPage
     * @param pageSize
     * @param dictQuery
     * @return
     */
    PageRecord<Dict> pageList(long currentPage, long pageSize, DictQuery dictQuery);
    /**
     * 获取字典列表，有过滤条件
     *
     * @param dictQuery
     * @return
     */
    List<Dict> list(DictQuery dictQuery);

    /**
     * 新增字典
     *
     * @param dict
     * @return
     */
    Boolean save(Dict dict);

    /**
     * 更新字典
     *
     * @param dict
     * @return
     */
    Boolean update(Dict dict);
    /**
     * 删除字典
     *
     * @param id
     * @return
     */
    Boolean delete(Long id);

    /**
     * 判断字典编码是否存在于字典类型下
     *
     * @param dictType
     * @param dictCode
     * @return
     */
    Boolean existsCode(String dictType, String dictCode);


    /**
     * 获取字典详情
     *
     * @param id
     * @return
     */
    Dict query(Long id);

}
